home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Diamond Collection / The Diamond Collection (Software Vault)(Digital Impact).ISO / cdr40 / x1j4_src.zip / L2V.C < prev    next >
Text File  |  1995-01-21  |  8KB  |  125 lines

  1. /**************************************************************************\
  2. *                                                                          *
  3. *                                                                          *
  4. *    *****                      *****                                      *
  5. *      *****                  *****                                        *
  6. *        *****              *****                                          *
  7. *          *****          *****                                            *
  8. *            *****      *****                                              *
  9. *              *****  *****                                                *
  10. *            *****      *****                                              *
  11. *          *****          *****          The Firmware. The Net.            *
  12. *        *****              *****        Portable. Compatible.             *
  13. *      *****                  *****      Public Domain.                    *
  14. *    *****                      *****    By NORD><LINK.                    *
  15. *                                                                          *
  16. *                                                                          *
  17. *                                                                          *
  18. *    L2V.C   -   Level 2, globale Variable                                 *
  19. *                                                                          *
  20. *    angelegt:      DC4OX                                                  *
  21. *    modifiziert:                                                          *
  22. *                                                                          *
  23. *                                                                          *
  24. * September 1993 - released as TheNet X-1J                                 *
  25. *                                                                          *
  26. * Released as TheNet X-1J release 4, January 1995                          *
  27. \**************************************************************************/
  28.  
  29.  
  30.  
  31.  
  32.  
  33. /*                                                             Includes   */
  34. /**************************************************************************/
  35.  
  36. #include "all.h"         /* allgemeine Festlegungen                       */
  37. #include "tntyp.h"       /* Festlegungen/Datenstrukturen fuer den Level 2 */
  38.  
  39.  
  40.  
  41.  
  42.  
  43. /*                                                              Globals   */
  44. /**************************************************************************/
  45.  
  46. char        myid[L2IDLEN];    /* Call (normal) + SSID (1 Bit linksgesch.) */
  47. char        alias[L2CALEN];   /* Ident der Station                        */
  48.  
  49. #ifndef FIRMWARE
  50. char        istraf[L2PNUM];   /* != 0 -> Frame gesendet                   */
  51. #endif
  52.  
  53. char        nmblks;           /* Anzahl aktiver Level-2-Links (1..127)    */
  54. char        Ypar;             /* Anzahl moeglicher Links (Y-Befehl)       */
  55. char        Vpar;             /* 0 = Linkaufbau mit Version 1 Protokoll   */
  56.                               /* 1 = Linkaufbau mit Version 2 Protokoll   */
  57.                               /* (V-Befehl)                               */
  58.                               
  59.                               /* empfangenes Frame :                      */
  60. char        rxfhdr[L2AFLEN+1];/*   Header (Ziel/Quell/via-Id's), 0-term.  */
  61. char        rxfctl;           /*   Kontrollbyte ohne P/F-Bit              */
  62. char        rxfPF;            /*   V1-Frame: 0                            */
  63.                               /*   V2-Frame: 0x10 = P/F gesetzt, 0 sonst  */
  64. char        rxfV2;            /*   0 = V1-Frame, 1 = V2-Frame             */
  65. char        rxfCR;            /*   V1-Frame: 0                            */
  66.                               /*   V2-Frame: 0x80 = Command-Frame         */
  67.                               /*             0x00 = Response-Frame        */
  68. char        rxfprt;           /*   0 = HDLC-Frame, 1 = Crosslink-Frame    */
  69.                               
  70.                               /* zu sendendes Frame :                     */
  71. char        txfhdr[L2AFLEN+1];/*   Header (Ziel/Quell/via-Id's), 0-term.  */
  72. char        txfctl;           /*   Kontrollbyte ohne P/F-Bit              */
  73. char        txfPF;            /*   V1-Frame: 0                            */
  74.                               /*   V2-Frame: 0x10 = P/F gesetzt, 0 sonst  */
  75. char        txfV2;            /*   0 = V1-Frame, 1 = V2-Frame             */
  76. char        txfCR;            /*   V1-Frame: 0                            */
  77.                               /*   V2-Frame: 0x80 = Command-Frame         */
  78.                               /*             0x00 = Response-Frame        */
  79. char        txfprt;           /*   0 = HDLC-Frame, 1 = Crosslink-Frame    */
  80.  
  81. unsigned    Fpar;             /* FRACK      sec               F-Befehl    */
  82. unsigned    Opar;             /* MAXFRAME   0..7              O-Befehl    */
  83. unsigned    Npar;             /* RETRY      0..127            N-Befehl    */
  84. unsigned    T2par;            /* T2         20ms              @-T2-Befehl */
  85. unsigned    T3par;            /* T3         sec               @-T3-Befehl */
  86. unsigned    Rpar;             /* DIGION     0..1              R-Befehl    */
  87.                               /* 1 = Digipeaten ein, 0 = aus              */
  88. unsigned    nmbfre;           /* "number free", Anzahl freier 32-Byte-    */
  89.                               /* Buffer (36 Byte mit Kopf)                */
  90. LHEAD       freel;            /* "free list",                             */
  91.                               /* Listenkopf Freibuffer                    */
  92. LHEAD       rxfl;             /* "rx frame list",                         */
  93.                               /* Listenkopf empfangene Frames             */
  94. LHEAD       stfl;             /* "sent frame list",                       */
  95.                               /* Listenkopf gesendete Frames              */
  96. LHEAD       trfl;             /* "trash frame list",                      */
  97.                               /* Listenkopfe Frames fuer den Muelleimer   */
  98. LHEAD       txl2fl[L2PNUM];   /* "tx level 2 frame list",                 */
  99.                               /* Listenkoepfe (je Port einer) zu sendende */
  100.                               /* Frames                                   */
  101. MBHEAD     *rxfhd[L2PNUM];    /* "rx frame head",                         */
  102.                               /* Zeiger (je Port einer) auf das gerade    */
  103.                               /* aktuelle Frame waherend Empfang,         */
  104.                               /* 0 = es wird gerade kein Frame empfangen  */ 
  105. MBHEAD     *txfhd[L2PNUM];    /* "tx frame head",                         */
  106.                               /* Zeiger (je Port einer) auf das gerade    */
  107.                               /* aktuelle Frame waherend Sendung,         */
  108.                               /* 0 = es wird gerade kein Frame gesendet   */
  109. LNKBLK      lnktbl[LINKNMBR]; /* "link table", fuer jeden moeglichen      */
  110.                               /* Level-2-Link ein Eintrag                 */
  111. LNKBLK     *lnkpoi;           /* "link pointer", globaler Zeiger auf den  */
  112.                               /* gerade aktuellen Linkblock (in lnktbl)   */
  113.  
  114.  
  115. #ifdef STATSCMD
  116. unsigned l2stats[NUML2STATS][NUMPORTS*2];
  117. #endif
  118.  
  119. #ifdef METERS
  120. unsigned char rxfdev;
  121. unsigned char siglev;
  122. #endif
  123.  
  124. /* Ende von L2V.C */
  125.